#ifndef LOCAL_ERROR_H
#define LOCAL_ERROR_H

#ifdef __cplusplus
extern "C" {
#endif
// mqtt客户端库的错误码及错误信息管理
// native错误码即为不同mqtt客户端库的错误码
// thmar_types.h中统一定义了mqtt客户端库的错误码，MqInvoker调用返回的错误码也统一为thmar_types.h中定义的错误码
// 同时将mqtt客户端库的错误码和错误信息保存到线程本地存储中，方便调用方获取错误信息
// 如果要想获取mqtt客户端库的错误信息，需要调用此头文件定义的相关函数  

// 获取当前线程的错误码
int thmar_get_native_errno();
// 设置当前线程的错误码
void thmar_set_native_errno(int err);
// 获取当前线程的错误信息
const char* thmar_get_errmsg();
// 设置当前线程的错误信息
// msg为NULL时清除错误信息
void thmar_set_errmsg(const char* msg);
// 设置当前线程的错误码和信息
// msg为NULL时清除错误信息
void thmar_set_err(int err, const char* msg);
// 清除当前线程的错误信息
void thmar_clear_err(); 
// 格式化输出错误信息到当前线程的错误信息中
// fmt为格式化字符串,为NULL时清除错误信息，...为可变参数
void thmar_sprintf_err(const char* fmt,...);
// 打印当前线程的错误信息到标准错误输出
void thmar_print_local_err();
#ifdef __cplusplus
}
#endif

#endif   /* LOCAL_ERROR_H */